<template>
  <section>
    <!--工具条-->
    <el-form :inline="true" :model="searchForm" class="toolbar" label-position="right" label-width="70px">
      <el-row>
        <el-form-item label="订单编号">
          <el-input v-model="searchForm.uuid"></el-input>
        </el-form-item>
        <el-form-item label="订单标签" prop="status">
          <el-select v-model="searchForm.orderTag" placeholder="请选择" clearable>
            <el-option v-for="item in orderTagList" :label="item.name" :key="item.code" :value="item.code"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="催收人员" prop="outsourceId">
          <el-select v-model="searchForm.outsourceId" placeholder="请选择" filterable clearable>
            <el-option v-for="item in thirdCompanyList" :label="item.name" :key="item.code" :value="item.code"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="是否被分配" prop="" label-width="90">
          <el-select v-model="searchForm.isAssigned" placeholder="请选择" clearable>
            <el-option  label="是" key="" value="1"></el-option>
            <el-option  label="否" key="" value="0"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="复借订单">
          <el-select v-model="searchForm.isRepeatBorrowing" placeholder="请选择" clearable>
            <el-option v-for="item in isAgainOrder" :label="item.name" :key="item.code" :value="item.code"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label=" ">
          <el-button @click="search" type="info" style="width: 170px">查询</el-button>
        </el-form-item>
      </el-row>
    </el-form>

    <template>
      <el-table :data="gridData" highlight-current-row v-loading="gridLoading" class="grid" @selection-change="handleSelectionChange">
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column label="订单编号" prop="uuid"  width="180">
        </el-table-column>
        <el-table-column label="姓名" prop="realName"  width="80">
        </el-table-column>
    <!--     <el-table-column label="手机号" prop="mobileNumber"  width="130">
    </el-table-column> -->
    <el-table-column label="复借订单" prop="isRepeatBorrowing">
      <template scope="scope">
        <el-tag :type="scope.row.isRepeatBorrowing==1? 'success' : 'danger'" close-transition>{{scope.row.isRepeatBorrowing==1?'是':'否'}}</el-tag>
      </template>
    </el-table-column>
    <el-table-column label="申请金额" prop="amountApply">
    </el-table-column>
    <el-table-column label="申请期限" prop="borrowingTerm">
    </el-table-column>
    <el-table-column label="订单标签" prop="orderTag" min-width="116">
      <template scope="scope">
        <span>{{getOrderTag(scope.row.orderTag)}}</span>
      </template>
    </el-table-column>
    <el-table-column label="催收人员" prop="collectorName" min-width="116">
     <!--  <template scope="scope">
        <span>{{getThirdCompany(scope.row.outsourceId)}}</span>
      </template> -->
    </el-table-column>
    <el-table-column label="逾期天数" prop="overdueDays">
    </el-table-column>
    <el-table-column inline-template label="操作" width="100">
      <div>
        <el-button size="small" @click="check(row)">详情</el-button>
      </div>
    </el-table-column>
  </el-table>
</template>
<!--分页-->
<el-pagination class="pager" @size-change="pageSizeChange" @current-change="pageIndexChange" :current-page="pageIndex" :page-size="pageSize"
layout="total, prev, pager, next, jumper" :total="dataTotal">
</el-pagination>
<el-form :inline="true" :model="distributeForm" class="toolbar" label-position="right" label-width="70px">
  <el-form-item label="催收人员" prop="status">
    <el-select v-model="distributeForm.thirdCompanyTag" placeholder="请选择" filterable clearable>
      <el-option v-for="item in thirdCompanyListone" :label="item.name" :key="item.code" :value="item.code"></el-option>
    </el-select>
  </el-form-item>
  <el-form-item>
    <el-button @click="distribute" type="info" :loading="distributeLoading">分配</el-button>
  </el-form-item>
  <el-form-item>
    <el-button @click="autoDistribute" type="info" :loading="autoDistributeLoading">自动分配</el-button>
  </el-form-item>
</el-form>

<el-dialog title="自动分配（D0）" v-model="editFormDigVisible" :close-on-click-modal="false" size="large">
 <div style="margin:0 0 15px;">已分配 <el-tag type="success">{{orderD0Assign.totalAssigned}}</el-tag> 单，其中新户 <el-tag type="success">{{orderD0Assign.assignedReBorrowingCount0}}</el-tag> 单，复借1次 <el-tag type="success">{{orderD0Assign.assignedReBorrowingCount1}}</el-tag> 单，复借2次 <el-tag type="success">{{orderD0Assign.assignedReBorrowingCount2}}</el-tag> 单，复借3次 <el-tag type="success">{{orderD0Assign.assignedReBorrowingCount3}}</el-tag> 单，复借3次以上 <el-tag type="success">{{orderD0Assign.assignedReBorrowingCountN}}</el-tag> 单</div>
 <div style="margin:0 0 15px;">待分配 <el-tag type="danger">{{orderD0Assign.totalUnAssigned}}</el-tag> 单，其中新户 <el-tag type="danger">{{orderD0Assign.unAssignedReBorrowingCount0}}</el-tag> 单，复借1次 <el-tag type="danger">{{orderD0Assign.unAssignedReBorrowingCount1}}</el-tag> 单，复借2次 <el-tag type="danger">{{orderD0Assign.unAssignedReBorrowingCount2}}</el-tag> 单，复借3次 <el-tag type="danger">{{orderD0Assign.unAssignedReBorrowingCount3}}</el-tag> 单，复借3次以上 <el-tag type="danger">{{orderD0Assign.unAssignedReBorrowingCountN}}</el-tag> 单</div>
 <el-table :data="userListData" highlight-current-row v-loading="editGridLoading" class="grid" max-height="360">
  <el-table-column label="催收人员" prop="realName" ></el-table-column>
  <el-table-column label="已分配新户订单数" prop="assignedReBorrowingCount0"></el-table-column>
  <el-table-column label="已分配复借1次订单数" prop="assignedReBorrowingCount1"></el-table-column>
  <el-table-column label="已分配复借2次订单数" prop="assignedReBorrowingCount2"></el-table-column>
  <el-table-column label="已分配复借3次订单数" prop="assignedReBorrowingCount3"></el-table-column>
  <el-table-column label="已分配复借3次以上订单数" prop="assignedReBorrowingCountN"></el-table-column>
  <el-table-column label="新增分配新户订单数">
    <template scope="scope">
      <el-input v-model="scope.row.unAssignedReBorrowingCount0"></el-input>
    </template>
  </el-table-column>
  <el-table-column label="新增分配复借1次订单数">
    <template scope="scope">
      <el-input v-model="scope.row.unAssignedReBorrowingCount1"></el-input>
    </template>
  </el-table-column>
  <el-table-column label="新增分配复借2次订单数">
    <template scope="scope">
      <el-input v-model="scope.row.unAssignedReBorrowingCount2"></el-input>
    </template>
  </el-table-column>
  <el-table-column label="新增分配复借3次订单数">
    <template scope="scope">
      <el-input v-model="scope.row.unAssignedReBorrowingCount3"></el-input>
    </template>
  </el-table-column>
  <el-table-column label="新增分配复借3次以上订单数">
    <template scope="scope">
      <el-input v-model="scope.row.unAssignedReBorrowingCountN"></el-input>
    </template>
  </el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
  <el-button type="" @click="editFormDigVisible = false">取 消</el-button>
  <el-button type="primary" @click.native.prevent="editFormSubmit" :loading="confirmLoading">确 定</el-button>
</div>
</el-dialog>

</section>
</template>
<script>
import enums from '../common/Enum'
import DataUtil from '../common/dataUtil'
export default {
  props: ['dialogTitle','postId','itemValue'],
  data() {
    return {
      searchForm: {
        uuid: '',
        orderTag: '',
        outsourceId: '',
        thirdDistribute: '',
        isAgain: '',
        isAssigned:'',
        isRepeatBorrowing:'',
      },

      orderD0Assign:{
       assignedReBorrowingCount0: 0,
       assignedReBorrowingCount1: 0,
       assignedReBorrowingCount2: 0,
       assignedReBorrowingCount3: 0,
       assignedReBorrowingCountN: 0,
       totalAssigned: 0,
       totalUnAssigned: 0,
       unAssignedReBorrowingCount0: 0,
       unAssignedReBorrowingCount1: 0,
       unAssignedReBorrowingCount2: 0,
       unAssignedReBorrowingCount3: 0,
       unAssignedReBorrowingCountN: 0
     },
     orderTagList : [{
        code: '1',
        name: '完全失联'
      },{
        code: '2',
        name: '暂时失联'
      },{
        code: '3',
        name: '可联跳票'
      },{
        code: '4',
        name: '可联承诺'
      }],
     thirdCompanyList: [],
     thirdCompanyListone:[],
     allpersonList:[],
     gridData: [],
     gridLoading: false,
     pageIndex: 1,
     pageSize: 20,
     dataTotal: 0,
     distributeForm:{
      thirdCompanyTag:'',
    },
    distributeLoading: false,
    commonForm:{
      title: ''
    },
    isAgainOrder:enums.isAgainOrder,
    editFormDigVisible: false,
    confirmLoading: false,
    editForm: {
      code: ''
    },
    autoDistributeLoading: false,
    userListData: [],
    editGridLoading: false,
    selectData: [],
    totalAssigned:0,
    totalUnAssigned: 0
  }
},
methods: {
  getCollecttionPerson() {
    this.$http.post('manage/collection/post-collectors',{}).then(response => {
      let {body} = response;
      if(body.code == 1){
        this.allpersonList = body.data;
      }else{
        this.allpersonList = [];
      }
    },response => {});
  },
  getCollectionList() {
    this.$http.post('manage/collection/collectors',{isThird:1}).then(response => {
      let {body} = response;
      if(body.code == 1){
        this.thirdCompanyList = body.data;
      }else{
        this.thirdCompanyList = [];
      }
    },response => {});
  },
    // 当前岗位催收人员
    getCollectionListone() {
      this.$http.post('manage/collection/current-collectors',{isThird:1,postId:this.postId}).then(response => {
        let {body} = response;
        if(body.code == 1){
          this.thirdCompanyListone = body.data;
        }else{
          this.thirdCompanyListone = [];
        }
      },response => {});
    },
    handleSelectionChange(val){
      this.selectData = val;
    },
    pageSizeChange(val) {
      this.pageSize = val;
      this.pageIndex = 1;
      this.bindGrid()
    },
    pageIndexChange(val) {
      this.pageIndex = val;
      this.bindGrid()
    },
    getOrderTag(type){
      return enums.getOrderTagList(type);
    },
    getThirdCompany(type){
     let re = '';
     this.allpersonList.forEach(obj => {
      if (obj.code == type) {
        re = obj.name;
        return
      }
    });
     return re},

     check(row){
      // window.open('#/CollectionOrderDetails?&uuid='+row.uuid);
      window.open('#/CollectionOrderDetails?seen=true&userUuid='+row.userUuid+
        '&uuid='+row.uuid);
    },
    rowClick(row){
      window.open('#/CollectionOrderDetails?seen=true&userUuid='+row.uuid+
        '&uuid='+row.orderNo);
    },
    rch() {
      this.pageIndex = 1;
      this.bindGrid()
    },
    search() {
      this.pageIndex = 1;
      this.bindGrid()
    },
    bindGrid() {
      this.gridLoading = true;
      let _data = Object.assign({
        pageNo:this.pageIndex,
        pageSize:this.pageSize,
        overdueDayMin: this.itemValue.split('#')[0],
        overdueDayMax: this.itemValue.split('#')[1]
      }, this.searchForm);
      this.$http.post('manage/collection/orders/assignable-D0-list', _data).then(response => {
        if (1 == response.body.code) {
          this.gridLoading = false;
          if(response.body.data){
            this.gridData = response.body.data.data;
            this.dataTotal = response.body.data.recordsTotal;
          }else {
            this.gridData = [];
            this.dataTotal = 0;
          }
        } else {
          this.$message.error(response.body.message);
        }
      }, response => {
        this.gridLoading = false;
      });
    },
    distribute() {
      if(!this.distributeForm.thirdCompanyTag){
        this.$message.error("请选择催收人员");
        return false;
      }
      let result = {};
      result.outsourceId = this.distributeForm.thirdCompanyTag;
      let orderUUIDs  = []
      result.orderUUIDs = orderUUIDs;
      this.selectData.forEach((data) =>{
        let temp = {};
        temp.uuid = data.uuid;
        temp.uuidString = data.userUuid;
        temp.outsourceId = this.distributeForm.thirdCompanyTag;
        orderUUIDs.push(data.uuid);
      });
      if(result.length <= 0){
        this.$message.error("请选择催收订单");
        return false;
      }
      this.distributeLoading = true;
      this.$http.post('manage/collection/order-assignment',result).then(response =>{
        this.distributeLoading = false;
        let {body} = response;
        if(1 == body.code){
          this.bindGrid();
        }
      });
    },
autoDistribute(row) {      //自动分配返显
  this.editFormDigVisible = true;
  this.editGridLoading = true;
  this.$http.post('manage/collection/D0-assignment-statistics',{}).then(response => {
    this.editGridLoading = false;
    let {body} = response;
    if(body.code == 1){
      this.userListData = [];
      this.orderD0Assign = body.data.orderStatistics;
      this.userListData = body.data.collectorOrderStatistics;
    }else{
      this.$message.error(body.message);
    }
  },response =>{});
},
  editFormSubmit() {       //自动分配数据提交
    let _unAssign0Count = 0,_unAssign1Count = 0,_unAssign2Count = 0,_unAssign3Count = 0,_unAssign4Count = 0;

    for(let i=0;i<this.userListData.length;i++){
      if(this.userListData[i].unAssignedReBorrowingCount0 === '' || this.userListData[i].unAssignedReBorrowingCount1 === ''|| this.userListData[i].unAssignedReBorrowingCount2 === ''|| this.userListData[i].unAssignedReBorrowingCount3 === ''|| this.userListData[i].unAssignedReBorrowingCountN === ''){
        this.$message.error('所有分配订单数不能为空');
        return;
      }else{
        _unAssign0Count += parseInt(this.userListData[i].unAssignedReBorrowingCount0);  
              // 计算每列单数总和
              _unAssign1Count += parseInt(this.userListData[i].unAssignedReBorrowingCount1);
              _unAssign2Count += parseInt(this.userListData[i].unAssignedReBorrowingCount2);
              _unAssign3Count += parseInt(this.userListData[i].unAssignedReBorrowingCount3);
              _unAssign4Count += parseInt(this.userListData[i].unAssignedReBorrowingCountN);
            }
          }
          console.log(this.userListData);
          if(_unAssign0Count > this.orderD0Assign.unAssignedReBorrowingCount0 || _unAssign1Count > this.orderD0Assign.unAssignedReBorrowingCount1 || _unAssign2Count > this.orderD0Assign.unAssignedReBorrowingCount2 || _unAssign3Count > this.orderD0Assign.unAssignedReBorrowingCount3 || _unAssign4Count > this.orderD0Assign.unAssignedReBorrowingCountN){
            this.$message.error('剩余待分配订单数不足，请重新分配');
            return;
          }
          let _data = {
            collectorAssignmentRequest:this.userListData
          };
          this.confirmLoading = true;
          this.$http.post('manage/collection/D0-auto-order-assignment',_data).then(response =>{
            this.confirmLoading = false;
            let {body} = response;
            if(body.code == 1){
              this.$message({
                type: 'success',
                message: '分配成功'
              });
              this.editFormDigVisible = false;
              this.bindGrid();
            }else{
              this.$message.error(body.message);
            }
          },response =>{this.confirmLoading = false;});
        },
      },
      mounted() {
        this.getCollecttionPerson();
        this.getCollectionList();
        this.bindGrid();
        this.getCollectionListone();
      }
    }
    </script>
    <style></style>